import { request } from '../../request';
/** get role list */
export function fetchGetRoleList(params?: Api.System.RoleSearchParams) {
  return request<Api.System.RoleList>({
    url: '/role/list',
    method: 'get',
    params
  });
}

export function fetchGetAllRoleList() {
  return request<Api.System.AllRole[]>({
    url: '/role/all',
    method: 'get'
  });
}

/**
 * 获取角色详情
 *
 * @param id 角色ID
 * @returns
 */
export function fetchGetRoleInfo(id: number) {
  return request<Api.System.Role>({
    url: `/role/${id}`,
    method: 'get'
  });
}

/**
 * 新增角色
 *
 * @param menu 角色数据
 * @returns
 */
export function fetchAddRole(role: Api.System.RoleEditModel) {
  return request<null>({
    url: '/role',
    method: 'post',
    data: role
  });
}

/**
 * 更新角色
 *
 * @param menu 角色数据
 * @returns
 */
export function fetchUpdateRole(role: Api.System.RoleEditModel) {
  return request<null>({
    url: '/role',
    method: 'put',
    data: role
  });
}

/**
 * 更新角色菜单权限
 *
 * @param menu 角色数据
 * @returns
 */
export function fetchUpdateRoleMenus(role: Api.System.RoleEditModel) {
  return request<null>({
    url: '/role/menus',
    method: 'put',
    data: role
  });
}

/**
 * 更新角色数据权限
 *
 * @param menu 角色数据
 * @returns
 */
export function fetchUpdateRoleDataScope(role: Api.System.RoleEditModel) {
  return request<null>({
    url: '/role/dataScope',
    method: 'put',
    data: role
  });
}

/**
 * 删除角色
 *
 * @param menu 角色数据
 * @returns
 */
export function fetchDeleteRole(id: number) {
  return request<null>({
    url: `/role/${id}`,
    method: 'delete'
  });
}
